//给定一个 24 小时制（小时:分钟 "HH:MM"）的时间列表，找出列表中任意两个时间的最小时间差并以分钟数表示。
//
//
//
// 示例 1：
//
//
//输入：timePoints = ["23:59","00:00"]
//输出：1
//
//
// 示例 2：
//
//
//输入：timePoints = ["00:00","23:59","00:00"]
//输出：0
//
//
//
//
// 提示：
//
//
// 2 <= timePoints <= 2 * 10⁴
// timePoints[i] 格式为 "HH:MM"
//
//
//
//
//
// 注意：本题与主站 539 题相同： https://leetcode-cn.com/problems/minimum-time-difference/
//
// Related Topics 数组 数学 字符串 排序 👍 44 👎 0


//leetcode submit region begin(Prohibit modification and deletion)
function findMinDifference(timePoints: string[]): number {
    timePoints.sort();
    //? 计算时间
    function get(s: string): number {
        let arr = s.split(":");
        return Number(arr[0]) * 60 + Number(arr[1]);
    }
    let min = Infinity;
    let pre = get(timePoints[0]);
    for (let i = 1; i < timePoints.length; i++) {
        let cur = get(timePoints[i]);
        min = Math.min(cur - pre, min);
        pre = cur;
    }
    //? +1440是考虑到第二天的最小时间与当天最大时间的差
    min = Math.min(1440 + get(timePoints[0]) - pre, min);
    return min;
}

//leetcode submit region end(Prohibit modification and deletion)
